package cn.fql._03later;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;

public class Producer {
    public static void main(String[] args) throws Exception {
        //1.先创建一个生产者对象
        DefaultMQProducer producer = new DefaultMQProducer("later-producer");
        //2.设置nameserver 地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        //3.启动生产者
        producer.start();
        // 创建一个消息对象
        Message msg = new Message("later-topic", "later-tags", "阿巴阿巴".getBytes("UTF-8"));
        /*
            延时消息：
                投递以后不是立即消费，可以在指定的时间以后才消费
            messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h

            延时消息的使用场景：
                做定时任务：订单超时关单，定时发布....


         */
        // 设置延时等级3,这个消息将在10s之后发送(现在只支持固定的几个时间,详看delayTimeLevel)
        msg.setDelayTimeLevel(3);
        //4.发送消息
        SendResult send = producer.send(msg);
        //单向消息--没有返回值【可靠性最低，效率最高】
        //producer.sendOneway(msg);
        System.out.println(send);
        //5.使用完毕之后 关闭实例
        producer.shutdown();

    }
}
